package com.sensePlusVR.utils;

import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;

/**
 * 获取手机一些参数信息
 * @author: Loren
 * @create: 2017-4-27下午1:52:52
 * @desc: 
 *
 */
public class AndroidDeviceUtil {

	public static String getDeviceIMEI(Context context){
		TelephonyManager mTelephonyMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
		String imei = mTelephonyMgr.getDeviceId();
		return imei;
	}
	
	public static String getDeviceIMSI(Context context){
		TelephonyManager mTelephonyMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
		String imsi = mTelephonyMgr.getSubscriberId();
		return imsi;
	}
	
	public static String getDeviceIMSIName(Context context){
		TelephonyManager mTelephonyMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
		String simName = mTelephonyMgr.getSimOperatorName();
		return simName;
	}
	
    /**
     * 获取手机Android 版本（4.4、5.0、5.1 ...）
     *
     * @return
     */
    public static String getBuildVersion() {
        return android.os.Build.VERSION.RELEASE;
    }
    
    /**
     * 获取手机Android API等级（22、23 ...）
     *
     * @return
     */
    public static int getBuildLevel() {
        return android.os.Build.VERSION.SDK_INT;
    }
    
    /**
     * 获取手机品牌
     *
     * @return
     */
    public static String getPhoneBrand() {
        return android.os.Build.BRAND;
    }
    /**
     * 获取手机型号
     *
     * @return
     */
    public static String getPhoneModel() {
        return android.os.Build.MODEL;
    }
    
    /**
     * 获取手机 Mac
     * @param context
     * @return
     */
    public static String getLocalMacAddress(Context context) { 
        WifiManager wifi = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
        WifiInfo info = wifi.getConnectionInfo(); 
        return info.getMacAddress(); 
   }
    
    /**
     * 获取自定义手机唯一标识（除非设备恢复出厂设置才会不同，其他时候都相同，用getDeviceIMEI方式需要配置权限，为了不加权限采用此种方式）
     * @param context
     * @return
     */
    public static String getCustomUniqueIdentifier(Context context){
    	String androidID = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
		String uniqueId = androidID + Build.SERIAL;
		return MD5.encode(uniqueId);
    }
    
    /**
     * 获取运行商
     * @param context
     * @return
     */
	public static String getDeviceSIMOperator(Context context) {
	//由于需要权限android.permission.READ_PHONE_STATE，所以全部给UNKNOWN
//		String imsi = getDeviceIMSI(context);
//		if (imsi != null) {
//			if (imsi.startsWith("46000") || imsi.startsWith("46002")){
//				// 中国移动 -CMCC
//				return "CMCC";
//			} else if (imsi.startsWith("46001")) {
//				// 中国联通 -CUCC
//				return "CUCC";
//			} else if (imsi.startsWith("46003")) {
//				// 中国电信 -CTCC
//				return "CTCC";
//			}
//		}
		return "UNKNOWN";
	}
}
